package org.dromara.apartment.domain.bo;

import io.swagger.v3.oas.annotations.media.Schema;
import org.dromara.apartment.domain.ApartmentInfo;
import org.dromara.apartment.domain.vo.GraphInfoVo;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;

import java.util.List;

/**
 * 公寓管理业务对象 apartment_info
 *
 * @author ckj
 * @date 2025-06-11
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = ApartmentInfo.class, reverseConvertGenerate = false)
public class ApartmentInfoBo extends BaseEntity {

    /**
     * 公寓id
     */
    @NotNull(message = "公寓id不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * 公寓名称
     */
    private String name;

    /**
     * 公寓介绍
     */
    private String introduction;

    /**
     * 所处区域id
     */
    private Integer districtId;

    /**
     * 区域名称
     */
    private String districtName;

    /**
     * 所处城市id
     */
    private Integer cityId;

    /**
     * 城市名称
     */
    private String cityName;

    /**
     * 所处省份id
     */
    private Integer provinceId;

    /**
     * 省份名称
     */
    private String provinceName;

    /**
     * 详细地址
     */
    private String addressDetail;

    /**
     * 经度
     */
    private String longitude;

    /**
     * 纬度
     */
    private String latitude;

    /**
     * 公寓前台电话
     */
    private String phone;

    /**
     * 是否发布（1:发布，0:未发布）
     */
    private Boolean isRelease;

    /**
     * 地区数组
     */
    private List<Integer> area;

    /**
     * 排序
     */
    private Integer sort;

    /**
     * 是否删除
     */
    private Boolean delFlag;

    /**
     * 缩略图
     */
    private String thumbnail;

    /**
     * 公寓配套id
     */
    private List<Long> facilityInfoIds;

    /**
     * 公寓标签id
     */
    private List<Long> labelIds;

    /**
     * 公寓杂费值id
     */
    private List<Long> feeValueIds;

    /**
     * 公寓图片id
     */
    private String graphBoList;

    /**
     * 最小租金
     */
    private Integer minRent;

    /**
     * 最大租金
     */
    private Integer maxRent;

    /**
     * 距离优先
     */
    private Boolean distanceFirst;


}
